/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.model;

import java.io.Serializable;
import java.util.Collection;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Alberto
 */
@Entity
@Table(name = "servicio")
@NamedQueries({
    @NamedQuery(name = "Servicio.findAll", query = "SELECT s FROM Servicio s"),
    @NamedQuery(name = "Servicio.findByIdservicio", query = "SELECT s FROM Servicio s WHERE s.idservicio = :idservicio"),
    @NamedQuery(name = "Servicio.findByProyecto", query = "SELECT s FROM Servicio s WHERE s.proyecto = :proyecto"),
    @NamedQuery(name = "Servicio.findByDescripcion", query = "SELECT s FROM Servicio s WHERE s.descripcion = :descripcion"),
    @NamedQuery(name = "Servicio.findByCentro", query = "SELECT s FROM Servicio s WHERE s.centro = :centro"),
    @NamedQuery(name = "Servicio.findByCoordinadorproyecto", query = "SELECT s FROM Servicio s WHERE s.coordinadorproyecto = :coordinadorproyecto"),
    @NamedQuery(name = "Servicio.findByCoordinadorescuela", query = "SELECT s FROM Servicio s WHERE s.coordinadorescuela = :coordinadorescuela"),
    @NamedQuery(name = "Servicio.findBySeleccion", query = "SELECT s FROM Servicio s WHERE s.seleccion = :seleccion")})
public class Servicio implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Basic(optional = false)
    @Column(name = "idservicio")
    private Integer idservicio;
    @Basic(optional = false)
    @Column(name = "proyecto")
    private String proyecto;
    @Column(name = "descripcion")
    private String descripcion;
    @Basic(optional = false)
    @Column(name = "centro")
    private String centro;
    @Basic(optional = false)
    @Column(name = "coordinadorproyecto")
    private String coordinadorproyecto;
    @Basic(optional = false)
    @Column(name = "coordinadorescuela")
    private String coordinadorescuela;
    @Column(name = "seleccion")
    private Boolean seleccion;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "servicio")
    private Collection<ServicioHasVoluntariado> servicioHasVoluntariadoCollection;

    public Servicio() {
    }

    public Servicio(Integer idservicio) {
        this.idservicio = idservicio;
    }

    public Servicio(Integer idservicio, String proyecto, String centro, String coordinadorproyecto, String coordinadorescuela) {
        this.idservicio = idservicio;
        this.proyecto = proyecto;
        this.centro = centro;
        this.coordinadorproyecto = coordinadorproyecto;
        this.coordinadorescuela = coordinadorescuela;
    }

    public Integer getIdservicio() {
        return idservicio;
    }

    public void setIdservicio(Integer idservicio) {
        this.idservicio = idservicio;
    }

    public String getProyecto() {
        return proyecto;
    }

    public void setProyecto(String proyecto) {
        this.proyecto = proyecto;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    public String getCentro() {
        return centro;
    }

    public void setCentro(String centro) {
        this.centro = centro;
    }

    public String getCoordinadorproyecto() {
        return coordinadorproyecto;
    }

    public void setCoordinadorproyecto(String coordinadorproyecto) {
        this.coordinadorproyecto = coordinadorproyecto;
    }

    public String getCoordinadorescuela() {
        return coordinadorescuela;
    }

    public void setCoordinadorescuela(String coordinadorescuela) {
        this.coordinadorescuela = coordinadorescuela;
    }

    public Boolean getSeleccion() {
        return seleccion;
    }

    public void setSeleccion(Boolean seleccion) {
        this.seleccion = seleccion;
    }

    public Collection<ServicioHasVoluntariado> getServicioHasVoluntariadoCollection() {
        return servicioHasVoluntariadoCollection;
    }

    public void setServicioHasVoluntariadoCollection(Collection<ServicioHasVoluntariado> servicioHasVoluntariadoCollection) {
        this.servicioHasVoluntariadoCollection = servicioHasVoluntariadoCollection;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idservicio != null ? idservicio.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Servicio)) {
            return false;
        }
        Servicio other = (Servicio) object;
        if ((this.idservicio == null && other.idservicio != null) || (this.idservicio != null && !this.idservicio.equals(other.idservicio))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.model.Servicio[idservicio=" + idservicio + "]";
    }

}
